<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64_types.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/pgtable_64_types.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="Maybe">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfUEdUQUJMRV82NF9ERUZTX0hfMA__"><span class="b">_ASM_X86_PGTABLE_64_DEFS_H</span></a>
<a name="2" /><span class="Maybe">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfUEdUQUJMRV82NF9ERUZTX0hfMA__"><span class="b">_ASM_X86_PGTABLE_64_DEFS_H</span></a>
<a name="3" /><span class="Maybe">       3:</span> 
<a name="4" /><span class="Maybe">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">sparsemem</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="Maybe">       5:</span> 
<a name="6" /><span class="Maybe">       6:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ASSEMBLY__</span>
<a name="7" /><span class="Maybe">       7:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="8" /><span class="Maybe">       8:</span> 
<a name="9" /><span class="Maybe">       9:</span> <span class="k">/*</span>
<a name="10" /><span class="Maybe">      10:</span> <span class="k"> * These are used to make use of C type-checking..</span>
<a name="11" /><span class="Maybe">      11:</span> <span class="k"> */</span>
<a name="12" /><span class="Maybe">      12:</span> <span class="m">typedef</span> <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">pteval_t</span><span class="f">;</span>
<a name="13" /><span class="Maybe">      13:</span> <span class="m">typedef</span> <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">pmdval_t</span><span class="f">;</span>
<a name="14" /><span class="Maybe">      14:</span> <span class="m">typedef</span> <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">pudval_t</span><span class="f">;</span>
<a name="15" /><span class="Maybe">      15:</span> <span class="m">typedef</span> <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">pgdval_t</span><span class="f">;</span>
<a name="16" /><span class="Maybe">      16:</span> <span class="m">typedef</span> <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">pgprotval_t</span><span class="f">;</span>
<a name="17" /><span class="Maybe">      17:</span> 
<a name="18" /><span class="Maybe">      18:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span> <span class="b">pteval_t</span> <span class="b">pte</span><span class="f">;</span> <span class="f">}</span> <span class="b">pte_t</span><span class="f">;</span>
<a name="19" /><span class="Maybe">      19:</span> 
<a name="20" /><span class="Maybe">      20:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* !__ASSEMBLY__ */</span>
<a name="21" /><span class="Maybe">      21:</span> 
<a name="22" /><span class="Maybe">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0hBUkVEX0tFUk5FTF9QTURfMA__"><span class="b">SHARED_KERNEL_PMD</span></a>    <span class="c">0</span>
<a name="23" /><span class="Maybe">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEFHRVRBQkxFX0xFVkVMU18w"><span class="b">PAGETABLE_LEVELS</span></a>    <span class="c">4</span>
<a name="24" /><span class="Maybe">      24:</span> 
<a name="25" /><span class="Maybe">      25:</span> <span class="k">/*</span>
<a name="26" /><span class="Maybe">      26:</span> <span class="k"> * PGDIR_SHIFT determines what a top-level page table entry can map</span>
<a name="27" /><span class="Maybe">      27:</span> <span class="k"> */</span>
<a name="28" /><span class="Maybe">      28:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEdESVJfU0hJRlRfMA__"><span class="b">PGDIR_SHIFT</span></a>    <span class="c">39</span>
<a name="29" /><span class="Maybe">      29:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UFRSU19QRVJfUEdEXzA_"><span class="b">PTRS_PER_PGD</span></a>    <span class="c">512</span>
<a name="30" /><span class="Maybe">      30:</span> 
<a name="31" /><span class="Maybe">      31:</span> <span class="k">/*</span>
<a name="32" /><span class="Maybe">      32:</span> <span class="k"> * 3rd level page</span>
<a name="33" /><span class="Maybe">      33:</span> <span class="k"> */</span>
<a name="34" /><span class="Maybe">      34:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UFVEX1NISUZUXzA_"><span class="b">PUD_SHIFT</span></a>    <span class="c">30</span>
<a name="35" /><span class="Maybe">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UFRSU19QRVJfUFVEXzA_"><span class="b">PTRS_PER_PUD</span></a>    <span class="c">512</span>
<a name="36" /><span class="Maybe">      36:</span> 
<a name="37" /><span class="Maybe">      37:</span> <span class="k">/*</span>
<a name="38" /><span class="Maybe">      38:</span> <span class="k"> * PMD_SHIFT determines the size of the area a middle-level</span>
<a name="39" /><span class="Maybe">      39:</span> <span class="k"> * page table can map</span>
<a name="40" /><span class="Maybe">      40:</span> <span class="k"> */</span>
<a name="41" /><span class="Maybe">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UE1EX1NISUZUXzA_"><span class="b">PMD_SHIFT</span></a>    <span class="c">21</span>
<a name="42" /><span class="Maybe">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UFRSU19QRVJfUE1EXzA_"><span class="b">PTRS_PER_PMD</span></a>    <span class="c">512</span>
<a name="43" /><span class="Maybe">      43:</span> 
<a name="44" /><span class="Maybe">      44:</span> <span class="k">/*</span>
<a name="45" /><span class="Maybe">      45:</span> <span class="k"> * entries per page directory level</span>
<a name="46" /><span class="Maybe">      46:</span> <span class="k"> */</span>
<a name="47" /><span class="Maybe">      47:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UFRSU19QRVJfUFRFXzA_"><span class="b">PTRS_PER_PTE</span></a>    <span class="c">512</span>
<a name="48" /><span class="Maybe">      48:</span> 
<a name="49" /><span class="Maybe">      49:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UE1EX1NJWkVfMA__"><span class="b">PMD_SIZE</span></a>    <span class="f">(</span><a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">1</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span> <span class="f">&lt;&lt;</span> <a href="cpu.c_macros_ref.html#_UE1EX1NISUZUXzA_"><span class="b">PMD_SHIFT</span></a><span class="f">)</span>
<a name="50" /><span class="Maybe">      50:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UE1EX01BU0tfMA__"><span class="b">PMD_MASK</span></a>    <span class="f">(</span><span class="f">~</span><span class="f">(</span><a href="cpu.c_macros_noref.html#_UE1EX1NJWkVfMA__"><span class="b">PMD_SIZE</span></a> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="51" /><span class="Maybe">      51:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UFVEX1NJWkVfMA__"><span class="b">PUD_SIZE</span></a>    <span class="f">(</span><a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">1</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span> <span class="f">&lt;&lt;</span> <a href="cpu.c_macros_ref.html#_UFVEX1NISUZUXzA_"><span class="b">PUD_SHIFT</span></a><span class="f">)</span>
<a name="52" /><span class="Maybe">      52:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UFVEX01BU0tfMA__"><span class="b">PUD_MASK</span></a>    <span class="f">(</span><span class="f">~</span><span class="f">(</span><a href="cpu.c_macros_noref.html#_UFVEX1NJWkVfMA__"><span class="b">PUD_SIZE</span></a> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="53" /><span class="Maybe">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEdESVJfU0laRV8w"><span class="b">PGDIR_SIZE</span></a>    <span class="f">(</span><a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">1</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span> <span class="f">&lt;&lt;</span> <a href="cpu.c_macros_noref.html#_UEdESVJfU0hJRlRfMA__"><span class="b">PGDIR_SHIFT</span></a><span class="f">)</span>
<a name="54" /><span class="Maybe">      54:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEdESVJfTUFTS18w"><span class="b">PGDIR_MASK</span></a>    <span class="f">(</span><span class="f">~</span><span class="f">(</span><a href="cpu.c_macros_noref.html#_UEdESVJfU0laRV8w"><span class="b">PGDIR_SIZE</span></a> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="55" /><span class="Maybe">      55:</span> 
<a name="56" /><span class="Maybe">      56:</span> <span class="k">/* See Documentation/x86/x86_64/mm.txt for a description of the memory map. */</span>
<a name="57" /><span class="Maybe">      57:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TUFYTUVNXzA_"><span class="b">MAXMEM</span></a>         <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_X19BQ18w"><span class="b">__AC</span></a><span class="f">(</span><span class="c">1</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span> <span class="f">&lt;&lt;</span> <a href="cpu.c_macros_ref.html#_TUFYX1BIWVNNRU1fQklUU18w"><span class="b">MAX_PHYSMEM_BITS</span></a><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="58" /><span class="Maybe">      58:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Vk1BTExPQ19TVEFSVF8w"><span class="b">VMALLOC_START</span></a>    <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">0xffffc90000000000</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="59" /><span class="Maybe">      59:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Vk1BTExPQ19FTkRfMA__"><span class="b">VMALLOC_END</span></a>      <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">0xffffe8ffffffffff</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="60" /><span class="Maybe">      60:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Vk1FTU1BUF9TVEFSVF8w"><span class="b">VMEMMAP_START</span></a>     <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">0xffffea0000000000</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="61" /><span class="Maybe">      61:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TU9EVUxFU19WQUREUl8w"><span class="b">MODULES_VADDR</span></a>    <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">0xffffffffa0000000</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="62" /><span class="Maybe">      62:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TU9EVUxFU19FTkRfMA__"><span class="b">MODULES_END</span></a>      <a href="cpu.c_macros_ref.html#_X0FDXzA_"><span class="b">_AC</span></a><span class="f">(</span><span class="c">0xffffffffff000000</span><span class="f">,</span> <span class="b">UL</span><span class="f">)</span>
<a name="63" /><span class="Maybe">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TU9EVUxFU19MRU5fMA__"><span class="b">MODULES_LEN</span></a>   <span class="f">(</span><a href="cpu.c_macros_noref.html#_TU9EVUxFU19FTkRfMA__"><span class="b">MODULES_END</span></a> <span class="f">-</span> <a href="cpu.c_macros_noref.html#_TU9EVUxFU19WQUREUl8w"><span class="b">MODULES_VADDR</span></a><span class="f">)</span>
<a name="64" /><span class="Maybe">      64:</span> 
<a name="65" /><span class="Maybe">      65:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RUFSTFlfRFlOQU1JQ19QQUdFX1RBQkxFU18w"><span class="b">EARLY_DYNAMIC_PAGE_TABLES</span></a>    <span class="c">64</span>
<a name="66" /><span class="Maybe">      66:</span> 
<a name="67" /><span class="True">      67:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_X86_PGTABLE_64_DEFS_H */</span>
<a name="68" /><span class="True">      68:</span> </pre>
  </body>
</html>
